package com.dszq.apis.article;


import com.dszq.apis.article.fallback.IArticleClientFallback;
import com.dszq.model.article.dtos.ArticleDto;
import com.dszq.model.common.dtos.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 文章服务的Feign客户端接口，用于远程调用文章服务的相关接口。
 * 使用了Hystrix容错机制，其fallback类为IArticleClientFallback。
 */
@FeignClient(value = "leadnews-article",fallback = IArticleClientFallback.class)
public interface IArticleClient {
    /**
     * 保存文章信息
     * @param articleDto 文章数据传输对象，包含文章的详细信息。
     * @return 返回操作结果，包括操作是否成功、错误码和错误信息等。
     */
    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto articleDto) ;
    /**
     * 删除文章
     *
     * @param id 文章ID，通过URL路径变量传递
     * @return 返回操作结果，包括成功与否、错误代码和错误信息等
     */
    @GetMapping("/api/v1/article/del_art/{articleId}")
    public ResponseResult deleteArticle(@PathVariable("articleId") Long id);
}

